It is becoming increasingly important to be able to access computer-based services using devices other than conventional desktop computers. Such devices include, for example, mobile phones and personal digital assistants (PDAs). Such devices are usually smaller and more portable than their desktop counterparts. However, this portability comes at a price. In particular, such devices typically share three disadvantages relative to conventional desktop computers: they have more cumbersome input mechanisms, they have slower (usually wireless) connections to servers, and they have less on-board computing power.
With respect to input mechanisms, desktop computers typically include QWERTY keyboards. Although a QWERTY keyboard may provide near optimal performance for a skilled user, speed and accuracy problems can arise in character input by an unskilled user. Speed and accuracy problems can also arise even for a skilled QWERTY keyboard user using a client machine with a numeric keypad, a pen-based input device, or other manual character input device that is different from a QWERTY keyboard.
Many computer uses involve actions that require items of information from a user. Examples of such actions include creating e-mail messages, scheduling appointments on an electronic calendar, and creating database queries. In addition to allowing creation of a completely new e-mail message, e-mail systems typically allow a user viewing an existing e-mail message to select “Reply” or “Forward” to create a new e-mail message that includes some items of information automatically extracted from the existing e-mail message. The user can then interactively edit and complete the new e-mail message. A message created in this manner is referred to herein as a “derived message.”
Electronic calendar systems similarly allow scheduling of a completely new appointment as well as scheduling of a modified appointment by viewing and modifying an existing appointment. The modified appointment can include items of information automatically extracted from the existing appointment.
Online databases similarly allow creation of completely new database queries as well as creation of a modified version of a previous query. The modified version can include items of information automatically extracted from the previous query.
Any user can make an input error when performing a task that requires user input. The chance of a user input error increases significantly when the user is using a device with an awkward input mechanism. Even when no error is made, when a significant amount of input is required, the input process may be tedious. These and similar problems relating to interactively providing information for actions are referred to generally herein as “information input problems”.
Using a device with a small or unsophisticated display may also result in information input problems. For example, a user reading e-mail, scheduling appointments, or submitting database queries from a personal digital assistant (PDA) or mobile telephone may not be able to concurrently view several different parts of a message, appointment, or query as would be possible with a personal computer with a larger screen, making it difficult to satisfactorily edit and complete the message, appointment, or query.
Furthermore, if the user is reading e-mail, scheduling appointments, or submitting queries from a client with a low speed network connection to the e-mail server, complex editing operations would be very slow. For example, it may be necessary for the server to provide a different display each time a change is made.
Based on the foregoing, it is clearly desirable to provide techniques that address the character input problems. In particular, it is desirable to provide techniques that facilitate character input at devices with relatively cumbersome input mechanisms, relatively slow connection speeds, and/or relatively unsophisticated display devices.